package com.buss.product.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.buss.core.persistence.ResultList;
import com.buss.product.dao.GoodsPropDao;
import com.buss.product.model.GoodsProp;
import com.buss.product.service.GoodsPropService;

@Service
public class GoodsPropServiceImpl implements GoodsPropService {

	@Autowired
	private GoodsPropDao goodsPropDao;
	
	@Override
	public GoodsProp saveGoodsProp(GoodsProp goodsProp) {
		return goodsPropDao.saveGoodsProp(goodsProp);
	}

	@Override
	public void editGoodsProp(GoodsProp goodsProp) {
		GoodsProp prop = loadGoodsProp(goodsProp.getGoods().getId(), goodsProp.getCateProp().getCode());
		if(prop != null){
			prop.setGoods(goodsProp.getGoods());
			prop.setPropValue(goodsProp.getPropValue());
			goodsPropDao.editGoodsProp(prop);
		}else{
			goodsPropDao.saveGoodsProp(goodsProp);
		}
	}

	@Override
	public void removeGoodsProp(Long[] ids) {
		goodsPropDao.removeGoodsProp(ids);
	}

	@Override
	public GoodsProp loadGoodsProp(Long id) {
		return goodsPropDao.loadGoodsProp(id);
	}

	@Override
	public GoodsProp loadGoodsProp(Long goodsId, Long catePropId) {
		return goodsPropDao.loadGoodsProp(goodsId, catePropId);
	}

	@Override
	public GoodsProp loadGoodsProp(Long goodsId, String propCode) {
		return goodsPropDao.loadGoodsProp(goodsId, propCode);
	}

	@Override
	public GoodsProp loadGoodsProp(String goodsCode, Long propId) {
		return goodsPropDao.loadGoodsProp(goodsCode, propId);
	}

	@Override
	public GoodsProp loadGoodsProp(String companyId, String goodsCode,
			String propCode) {
		return goodsPropDao.loadGoodsProp(companyId, goodsCode, propCode);
	}

	@Override
	public ResultList<GoodsProp> queryGoodsProp(Long goodsId) {
		return goodsPropDao.queryGoodsProp(goodsId);
	}

	@Override
	public ResultList<GoodsProp> queryGoodsProp(String companyId,
			String goodsCode) {
		return goodsPropDao.queryGoodsProp(companyId, goodsCode);
	}

	@Override
	public void removeGoodsPropByGoodsId(Long goodsId) {
		goodsPropDao.removeGoodsPropByGoodsId(goodsId);
	}

}
